package com.daleige.common;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateUtil {
	/** 中文格式*/
	public static final String CNPTN = "yyyy年MM月dd日 HH时mm分ss秒";
	/** 斜杠格式*/
	public static final String SLASHPTN = "yyyy/MM/dd HH:mm:ss";
	/** 无符号格式*/
	public static final String PTN = "yyyyMMddHHmmss";
	/** 年月日格式*/
	public static final String YMDPTN = "yyyyMMdd";
	/** 横杠格式*/
	public static final String BARPTN = "yyyy-MM-dd HH:mm:ss";
	/** 
     * 获取SimpleDateFormat 
     * @param parttern 日期格式 
     * @return SimpleDateFormat对象 
     * @throws RuntimeException 异常：非法日期格式 
     */  
	private static SimpleDateFormat getDateFormat(String parttern){ 
		if (parttern == null || parttern.trim().length() == 0) {
			parttern = PTN;
		}
        return new SimpleDateFormat(parttern);  
    }  
	
	public static String getSimpleFormat(Object date){
		return getTimeFormat(date, BARPTN);
	}
	
	/**
	 * 获取当前时间字符串
	 * @return
	 */
	public static String getCurrentTime(){
		return getSimpleFormat(System.currentTimeMillis());
	}
	
	/**
	 * 获取当前时间字符串
	 * @return
	 */
	public static String getCurrentTime(String parttern){
		return getTimeFormat(System.currentTimeMillis(), parttern);
	}
	
	/**
	 * 格式化date时间
	 * @param parttern
	 * @param date
	 * @return
	 */
	public static String getTimeFormat(Date date, String parttern){
		return getDateFormat(parttern).format(date);
	}
	
	/**
	 * 格式化时间戳
	 * @param parttern
	 * @param date
	 * @return
	 */
	public static String getTimeFormat(Object date, String parttern){
		return getDateFormat(parttern).format(date);
	}
	
	public static Date getDate(String time, String parttern) throws ParseException{
		return getDateFormat(parttern).parse(time);
	}
	
	public static long getLong(String time, String parttern) throws ParseException{
		return getDate(time, parttern).getTime();
	}
	
	public static long getSimpleLong(String time) throws ParseException{
		return getLong(time, BARPTN);
	}
}
